#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <stdio.h>
#include <Windows.h>
#include <string>

#include "Singleton.h"

class GameApp
{
public:
	GameApp();
	~GameApp();

	virtual void SetupWindow(const char* wndName, int width, int height, HINSTANCE hInst);
	virtual void SetupScene();

	DWORD Go();

private:
	ATOM MyRegisterClass(const char* , HINSTANCE);
	void InitInstance(const char*, HINSTANCE);
	virtual void PerFrame(double deltaTime);

public:
	HWND getHwnd(){return mHwnd;}

private:
	bool mIsWindowed;
	HWND mHwnd;

	int mWidth;
	int mHeight;

	HINSTANCE hInstance;
};

//Global Function. To get the concrete application object. 
//Only declaration. Must be defined in the application cpp.
GameApp* GetApplication();